<?php

namespace app\common\model\system;


use app\common\loader\ModelMerchant;
use app\common\model\BaseModel;

/**
 * 系统管理员操作日志
 * Class DemoSystemOplog
 * @package app\demo\model
 */
class SystemOplogModel extends BaseModel
{
    //
    public string $fieldId = 'id';

    //
    public string $fieldOpUser = 'op_user';
    // 操作人
    public string $fieldOpName = 'op_name';
    // 操作人名称
    public string $fieldAction = 'action';
    // 执行动作
    public string $fieldActionTitle = 'action_title';
    // 动作名称
    public string $fieldRequest = 'request';
    // 请求内容
    public string $fieldExecute = 'execute';
    // sql内容
    public string $fieldIp = 'ip';
    // 操作IP
    public string $fieldCreateAt = 'create_at';
    // 创建时间
    protected $name = 'system_oplog';

    // 设置字段信息
    protected $schema = [
        'id' => 'int',        //
        'op_user' => 'int',        // 操作人
        'op_name' => 'string',        // 操作人名称
        'action' => 'string',        // 执行动作
        'action_title' => 'string',        // 动作名称
        'request' => 'string',        // 请求内容
        'execute' => 'string',        // sql内容
        'ip' => 'string',        // 操作IP
        'create_at' => 'datetime',        // 创建时间
    ];

    /**
     * 首页统计
     * @param array $param
     */
    public function home(array $param = []): array
    {

        $result = [
            'merchant_num' => 0, //商户数量
            'merchant_normal_num' => 0, //正常商户
            'merchant_forbid_num' => 0, //禁用商户
            'pay_true_money' =>  0,//充值金额
            'pay_false_money' =>  0,//充值失败金额
            'pay_false_money_count' =>0, //失败数量
            'money' => 0, //商户剩余金额
            'procedure_money' => 0, //手续费
            'on_pay_money' => 0, //线上收费
            'below_pay_money' => 0, //线下收费
            'bank_pay_money' => 0, //银行收费
        ];

        //用户统计
        $statistics_data = ModelMerchant::MerchantInfo()->getMerchantStatisticData($param['info_where']);

        //充值统计
        $statistics_money_data = ModelMerchant::RechargeLog()->getMerchantStatisticData($param);

        return array_merge($result,$statistics_money_data,$statistics_data);

    }
}
